// pages/whereami/whereami.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isOpen:false,
    latitude:0,
    longitude:0,
    isMap:false
  },
  //
  openloc: function () {
    var that = this
    wx.getLocation({
      success:function(res){
        //
        wx.openLocation({
          latitude:res.latitude,
          longitude:res.longitude,
        })
        that.setData({
          latitude:res.longitude,
          longitude:res.longitude,
          isOpen:true
        })
      },
      fail:function(err){
        console.error(err)
      }
    })
  },
  
    getDistance: function (e1,n1,e2,n2) {
      const R = 6378137.0
      let getPoint = (e,n) => {
        e *= Math.PI / 180
        n *= Math.PI / 180
        return{x:Math.cos(n) * Math.cos(e),y:Math.cos(n) * Math.sin(e),z:Math.sin(n)}
      }
      let a = getPoint(e1,n1)
      let b = getPoint(e2,n2)
      let c = Math.hypot(a.x - b.x,a.y - b.y,a.z - b.z)
      let r = Math.asin(c / 2) * 2 * R
      return r
    },
  
    nearby:function(e){
      var that = this
      this.mapCtx = wx.createMapContext('mymap')
      var latitude = this.data.latitude
      var longitude = this.data.longitude
      wx.chooseLocation({
        latitude:latitude,
        longitude:longitude,
        success:function(res){
          console.log(res)
          var r = that.getDistance(longitude,latitude,res.longitude,res.latitude)
          var info = "你选择了【"+res.name+"】\n"
          info += "位于【"+res.address+"】\n"
          info += "和你的直线距离大约【"+Math.round(r)+"】米"
          that.mapCtx.moveToLocation({
            latitude:res.latitude,
            longitude:res.latitude
          })
          that.setData({
            info:info,
            isMap:true
          })
        }
      })
    },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})